[INFO] cloning repository https://github.com/bgalvao/nodevo
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bgalvao/nodevo" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbgalvao%2Fnodevo", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbgalvao%2Fnodevo'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2fa9c3bb1f088fdf7b45fb5eb96f8f79e8f3b9b0
[INFO] checking bgalvao/nodevo against master#82310651b93a594a3fd69015e1562186a080d94c for pr-145770
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbgalvao%2Fnodevo" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/bgalvao/nodevo
[INFO] finished tweaking git repo https://github.com/bgalvao/nodevo
[INFO] tweaked toml for git repo https://github.com/bgalvao/nodevo written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/bgalvao/nodevo on toolchain 82310651b93a594a3fd69015e1562186a080d94c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/bgalvao/nodevo already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded num_cpus v1.4.0
[INFO] [stderr]   Downloaded deque v0.3.2
[INFO] [stderr]   Downloaded lazy_static v0.2.8
[INFO] [stderr]   Downloaded rayon v0.7.0
[INFO] [stderr]   Downloaded rayon-core v1.0.0
[INFO] [stderr]   Downloaded rand v0.3.15
[INFO] [stderr]   Downloaded libc v0.2.21
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8abea374094a664c31294e34d50c4505085e7bd4eb0c35a2bd464f37e4cc198c
[INFO] running `Command { std: "docker" "start" "-a" "8abea374094a664c31294e34d50c4505085e7bd4eb0c35a2bd464f37e4cc198c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8abea374094a664c31294e34d50c4505085e7bd4eb0c35a2bd464f37e4cc198c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8abea374094a664c31294e34d50c4505085e7bd4eb0c35a2bd464f37e4cc198c", kill_on_drop: false }`
[INFO] [stdout] 8abea374094a664c31294e34d50c4505085e7bd4eb0c35a2bd464f37e4cc198c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4ec58dd676c6beb99c2d4705f7158f52b3ddd9479a3f8a2e99987d01330af2d5
[INFO] running `Command { std: "docker" "start" "-a" "4ec58dd676c6beb99c2d4705f7158f52b3ddd9479a3f8a2e99987d01330af2d5", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Checking libc v0.2.21
[INFO] [stderr]    Compiling rayon-core v1.0.0
[INFO] [stderr]     Checking deque v0.3.2
[INFO] [stderr]     Checking lazy_static v0.2.8
[INFO] [stderr]     Checking num_cpus v1.4.0
[INFO] [stderr]     Checking rand v0.3.15
[INFO] [stderr]     Checking rayon v0.7.0
[INFO] [stderr]     Checking nodevo v0.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `pool_size`
[INFO] [stdout]    --> src/core/population.rs:138:48
[INFO] [stdout]     |
[INFO] [stdout] 138 |     pub fn fitness_proportionate_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |                                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pool_size`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool_size`
[INFO] [stdout]    --> src/core/population.rs:148:31
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn rank_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pool_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool_size`
[INFO] [stdout]    --> src/core/population.rs:152:38
[INFO] [stdout]     |
[INFO] [stdout] 152 |     pub fn pareto_rank_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pool_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Selection` is more private than the item `GP::set_selection_method`
[INFO] [stdout]    --> src/core/gp.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 116 |     pub fn set_selection_method(mut self, sm: Selection) -> GP {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `GP::set_selection_method` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Selection` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/core/gp.rs:13:1
[INFO] [stdout]     |
[INFO] [stdout] 13  | enum Selection {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Data` is never constructed
[INFO] [stdout]  --> src/core/data.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Data {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/core/data.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Data {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn train(&self) -> &Vec<Vec<f32>> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn test(&self) -> &Vec<Vec<f32>> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn dims(&self) -> usize {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn train_targets(&self) -> &Vec<f32> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn test_targets(&self) -> &Vec<f32> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn new(dataset: &'static str) -> Data {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     fn new_df(filename: String) -> Vec<Vec<f32>> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn get_iterator(filepath: &str) -> Lines<BufReader<File>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     fn fill_array(lines: Lines<BufReader<File>>) -> Vec<Vec<f32>> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     fn transpose_array(array: Vec<Vec<f32>>) -> Vec<Vec<f32>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rmse` is never used
[INFO] [stdout]  --> src/core/utils.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn rmse(x: &Vec<f32>, y: &Vec<f32>) -> f32 {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add` is never used
[INFO] [stdout]   --> src/core/utils.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn add(x: Vec<f32>, y: Vec<f32>) -> Vec<f32> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `subtract` is never used
[INFO] [stdout]   --> src/core/utils.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn subtract(x: Vec<f32>, y: Vec<f32>) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `multiply` is never used
[INFO] [stdout]   --> src/core/utils.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn multiply(x: Vec<f32>, y: Vec<f32>) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cosine` is never used
[INFO] [stdout]   --> src/core/utils.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn cosine(x: Vec<f32>) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `logistic_function` is never used
[INFO] [stdout]   --> src/core/utils.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn logistic_function(x: Vec<f32>) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `divide` is never used
[INFO] [stdout]   --> src/core/utils.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn divide(x: Vec<f32>, y: Vec<f32>) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Node` is never used
[INFO] [stdout]  --> src/core/node.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum Node {
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `arity`, `op`, `get_random_const`, `get_random_functional`, and `get_random_input` are never used
[INFO] [stdout]   --> src/core/node.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Node {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 20 |     /// Returns how many arguments a node takes.
[INFO] [stdout] 21 |     pub fn arity(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn op(&self, args: Vec<Vec<f32>>) -> Vec<f32> {
[INFO] [stdout]    |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn get_random_const() -> Node {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn get_random_functional() -> Node {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn get_random_input(dimensions: usize) -> Node {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Individual` is never constructed
[INFO] [stdout]   --> src/core/individual.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct Individual {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/individual.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout] 36  | impl Individual {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 37  |     /// Returns a clone of core.
[INFO] [stdout] 38  |     pub fn clone_core(&self) -> Vec<Node> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46  |     pub fn train(&self) -> Option<f32> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49  |     pub fn test(&self) -> Option<f32> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53  |     pub fn size(&self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63  |     pub fn depth(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67  |     pub fn train_semantics(&self) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73  |     pub fn test_semantics(&self) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79  |     pub fn semantics(&self) -> (Vec<f32>, Vec<f32>) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn new() -> Individual {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn full(max_depth: usize, data_ref: &Data) -> Individual {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn inner_full(&mut self, current_depth: usize, max_depth: usize, data_dims: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn grow(max_depth: usize, data_ref: &Data) -> Individual {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn inner_grow(&mut self, current_depth: usize, max_depth: usize, data_dims: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     fn get(&mut self, idx: usize) -> Node {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn prepend_node(&mut self, node: Node) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn compute_depth(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     fn inner_compute_depth(&mut self, idx: &mut usize, current_depth: &usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     fn output(&mut self, mut idx: usize, df: &Vec<Vec<f32>>) -> Vec<f32> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn compute_semantics(&mut self, data: &Data) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn evaluate(&mut self, data: &Data) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn count_subtree_nodes(&self, starting_index: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn outer_left_copy(&self, excluding_node_at: usize) -> Vec<Node> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn outer_right_copy(&self, including_node_at: usize) -> Vec<Node> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn copy_subtree(&self, from_node: usize, subtree_nodes: usize) -> Vec<Node> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn plug_in_core(&mut self, nodes: Vec<Node>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `crossover` is never used
[INFO] [stdout]    --> src/core/individual.rs:305:16
[INFO] [stdout]     |
[INFO] [stdout] 305 |         pub fn crossover(p1: &Individual, p2: &Individual, data: &Data) -> Individual {
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mutation` is never used
[INFO] [stdout]    --> src/core/individual.rs:331:16
[INFO] [stdout]     |
[INFO] [stdout] 331 |         pub fn mutation(p1: &Individual, data: &Data) -> Individual {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `crossover` is never used
[INFO] [stdout]    --> src/core/individual.rs:369:16
[INFO] [stdout]     |
[INFO] [stdout] 369 |         pub fn crossover(p1: &Individual, p2: &Individual, data: &Data) -> Individual {
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gs_crossover_semantics` is never used
[INFO] [stdout]    --> src/core/individual.rs:394:12
[INFO] [stdout]     |
[INFO] [stdout] 394 |         fn gs_crossover_semantics(p1_semantics: Vec<f32>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_xo_offspring_size` is never used
[INFO] [stdout]    --> src/core/individual.rs:405:12
[INFO] [stdout]     |
[INFO] [stdout] 405 |         fn calc_xo_offspring_size(p1: &Individual, p2: &Individual, r1: &Individual) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_xo_offspring_depth` is never used
[INFO] [stdout]    --> src/core/individual.rs:409:12
[INFO] [stdout]     |
[INFO] [stdout] 409 |         fn calc_xo_offspring_depth(p1: &Individual, p2: &Individual, r1: &Individual) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mutation` is never used
[INFO] [stdout]    --> src/core/individual.rs:415:16
[INFO] [stdout]     |
[INFO] [stdout] 415 |         pub fn mutation(p1: &Individual,
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gs_mutation_semantics` is never used
[INFO] [stdout]    --> src/core/individual.rs:450:12
[INFO] [stdout]     |
[INFO] [stdout] 450 |         fn gs_mutation_semantics(p1_sems: Vec<f32>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_mut_offspring_size` is never used
[INFO] [stdout]    --> src/core/individual.rs:461:12
[INFO] [stdout]     |
[INFO] [stdout] 461 |         fn calc_mut_offspring_size(p1: &Individual, r1: &Individual, r2: &Individual) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_mut_offspring_depth` is never used
[INFO] [stdout]    --> src/core/individual.rs:465:12
[INFO] [stdout]     |
[INFO] [stdout] 465 |         fn calc_mut_offspring_depth(p1: &Individual, r1: &Individual, r2: &Individual) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Population` is never constructed
[INFO] [stdout]  --> src/core/population.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Population {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/population.rs:14:12
[INFO] [stdout]     |
[INFO] [stdout] 12  | impl Population {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 13  |     /// Returns size of the population.
[INFO] [stdout] 14  |     pub fn size(&self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19  |     pub fn new() -> Population {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24  |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29  |     pub fn add_individual(&mut self, new_guy: Individual) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36  |     pub fn add_individuals(&mut self, new_guys: Vec<Individual>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44  |     pub fn core_mut(&mut self) -> &mut Vec<Individual> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49  |     pub fn core(&self) -> &Vec<Individual> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54  |     pub fn new_rhh(pop_size: usize, max_init_depth: usize, data: &Data) -> Population {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91  |     pub fn sort_by_te(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn get_first(&self) -> &Individual {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn clone_k_best(&self, k: usize) -> Vec<Individual> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn keep_k_best(&mut self, k: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn tournament_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn fitness_proportionate_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn rank_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn pareto_rank_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Selection` is never used
[INFO] [stdout]   --> src/core/gp.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | enum Selection {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Variation` is never used
[INFO] [stdout]   --> src/core/gp.rs:22:6
[INFO] [stdout]    |
[INFO] [stdout] 22 | enum Variation {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GP` is never constructed
[INFO] [stdout]   --> src/core/gp.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct GP {
[INFO] [stdout]    |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/gp.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout] 49  | impl GP {
[INFO] [stdout]     | ------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 53  |     pub fn new_gp(dataset: Data) -> GP {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70  |     pub fn new_gsgp(dataset: Data) -> GP {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85  |     pub fn set_pop(mut self, pop: Population) -> GP {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97  |     pub fn set_pop_size(mut self, size: usize) -> GP {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn set_xo_rate(mut self, xo_rate: f32) -> GP {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn set_pool_size(mut self, ps: usize) -> GP {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn set_selection_method(mut self, sm: Selection) -> GP {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn pop(&self) -> &Population {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn pop_mut(&mut self) -> &mut Population {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn init_new_pop(&mut self) -> () {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn print_state(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn select(&self) -> &Individual {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     fn crossover(&self, p1: &Individual, p2: &Individual, data: &Data) -> Individual {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     fn mutation(&self, p1: &Individual, data: &Data) -> Individual {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn evolve(&mut self, gens: usize) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn clean(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mgp` is never constructed
[INFO] [stdout]  --> src/core/multi_gp.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Mgp {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_subpop`, `init`, and `evolve_in_parallel` are never used
[INFO] [stdout]   --> src/core/multi_gp.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Mgp {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 11 |     /// Returns a blank `Mgp` to be configured
[INFO] [stdout] 12 |     pub fn new() -> Mgp {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn add_subpop(mut self, s: GP) -> Mgp {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn init(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn evolve_in_parallel(&mut self, turns: u8, gens_per_turn: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/core/data.rs:60:30
[INFO] [stdout]    |
[INFO] [stdout] 60 |             Err(e) => panic!(e),
[INFO] [stdout]    |                              ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 60 |             Err(e) => panic!("{}", e),
[INFO] [stdout]    |                              +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]    |
[INFO] [stdout] 60 -             Err(e) => panic!(e),
[INFO] [stdout] 60 +             Err(e) => std::panic::panic_any(e),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool_size`
[INFO] [stdout]    --> src/core/population.rs:138:48
[INFO] [stdout]     |
[INFO] [stdout] 138 |     pub fn fitness_proportionate_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |                                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pool_size`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool_size`
[INFO] [stdout]    --> src/core/population.rs:148:31
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn rank_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pool_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool_size`
[INFO] [stdout]    --> src/core/population.rs:152:38
[INFO] [stdout]     |
[INFO] [stdout] 152 |     pub fn pareto_rank_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pool_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool_size`
[INFO] [stdout]    --> src/core/population.rs:138:48
[INFO] [stdout]     |
[INFO] [stdout] 138 |     pub fn fitness_proportionate_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |                                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pool_size`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool_size`
[INFO] [stdout]    --> src/core/population.rs:148:31
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn rank_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pool_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool_size`
[INFO] [stdout]    --> src/core/population.rs:152:38
[INFO] [stdout]     |
[INFO] [stdout] 152 |     pub fn pareto_rank_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pool_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Selection` is more private than the item `GP::set_selection_method`
[INFO] [stdout]    --> src/core/gp.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 116 |     pub fn set_selection_method(mut self, sm: Selection) -> GP {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `GP::set_selection_method` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Selection` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/core/gp.rs:13:1
[INFO] [stdout]     |
[INFO] [stdout] 13  | enum Selection {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_empty`, `core_mut`, `core`, and `pareto_rank_select` are never used
[INFO] [stdout]    --> src/core/population.rs:24:12
[INFO] [stdout]     |
[INFO] [stdout] 12  | impl Population {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24  |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44  |     pub fn core_mut(&mut self) -> &mut Vec<Individual> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49  |     pub fn core(&self) -> &Vec<Individual> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn pareto_rank_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `FitnessProportionate` and `Rank` are never constructed
[INFO] [stdout]   --> src/core/gp.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | enum Selection {
[INFO] [stdout]    |      --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 16 |     FitnessProportionate, // TODO
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     Rank, // TODO
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `GeometricSemantic` is never constructed
[INFO] [stdout]   --> src/core/gp.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | enum Variation {
[INFO] [stdout]    |      --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 30 |     GeometricSemantic(f32, bool),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_gsgp`, `set_pop`, and `set_selection_method` are never used
[INFO] [stdout]    --> src/core/gp.rs:70:12
[INFO] [stdout]     |
[INFO] [stdout] 49  | impl GP {
[INFO] [stdout]     | ------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 70  |     pub fn new_gsgp(dataset: Data) -> GP {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85  |     pub fn set_pop(mut self, pop: Population) -> GP {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn set_selection_method(mut self, sm: Selection) -> GP {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/core/data.rs:60:30
[INFO] [stdout]    |
[INFO] [stdout] 60 |             Err(e) => panic!(e),
[INFO] [stdout]    |                              ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 60 |             Err(e) => panic!("{}", e),
[INFO] [stdout]    |                              +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]    |
[INFO] [stdout] 60 -             Err(e) => panic!(e),
[INFO] [stdout] 60 +             Err(e) => std::panic::panic_any(e),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Selection` is more private than the item `GP::set_selection_method`
[INFO] [stdout]    --> src/core/gp.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 116 |     pub fn set_selection_method(mut self, sm: Selection) -> GP {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `GP::set_selection_method` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Selection` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/core/gp.rs:13:1
[INFO] [stdout]     |
[INFO] [stdout] 13  | enum Selection {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Data` is never constructed
[INFO] [stdout]  --> src/core/data.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Data {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/core/data.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Data {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn train(&self) -> &Vec<Vec<f32>> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn test(&self) -> &Vec<Vec<f32>> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn dims(&self) -> usize {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn train_targets(&self) -> &Vec<f32> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn test_targets(&self) -> &Vec<f32> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn new(dataset: &'static str) -> Data {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     fn new_df(filename: String) -> Vec<Vec<f32>> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn get_iterator(filepath: &str) -> Lines<BufReader<File>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     fn fill_array(lines: Lines<BufReader<File>>) -> Vec<Vec<f32>> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     fn transpose_array(array: Vec<Vec<f32>>) -> Vec<Vec<f32>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rmse` is never used
[INFO] [stdout]  --> src/core/utils.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn rmse(x: &Vec<f32>, y: &Vec<f32>) -> f32 {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add` is never used
[INFO] [stdout]   --> src/core/utils.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn add(x: Vec<f32>, y: Vec<f32>) -> Vec<f32> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `subtract` is never used
[INFO] [stdout]   --> src/core/utils.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn subtract(x: Vec<f32>, y: Vec<f32>) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `multiply` is never used
[INFO] [stdout]   --> src/core/utils.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn multiply(x: Vec<f32>, y: Vec<f32>) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cosine` is never used
[INFO] [stdout]   --> src/core/utils.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn cosine(x: Vec<f32>) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `logistic_function` is never used
[INFO] [stdout]   --> src/core/utils.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn logistic_function(x: Vec<f32>) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `divide` is never used
[INFO] [stdout]   --> src/core/utils.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn divide(x: Vec<f32>, y: Vec<f32>) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Node` is never used
[INFO] [stdout]  --> src/core/node.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum Node {
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `arity`, `op`, `get_random_const`, `get_random_functional`, and `get_random_input` are never used
[INFO] [stdout]   --> src/core/node.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Node {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 20 |     /// Returns how many arguments a node takes.
[INFO] [stdout] 21 |     pub fn arity(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn op(&self, args: Vec<Vec<f32>>) -> Vec<f32> {
[INFO] [stdout]    |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn get_random_const() -> Node {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn get_random_functional() -> Node {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn get_random_input(dimensions: usize) -> Node {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Individual` is never constructed
[INFO] [stdout]   --> src/core/individual.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct Individual {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/individual.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout] 36  | impl Individual {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 37  |     /// Returns a clone of core.
[INFO] [stdout] 38  |     pub fn clone_core(&self) -> Vec<Node> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46  |     pub fn train(&self) -> Option<f32> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49  |     pub fn test(&self) -> Option<f32> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53  |     pub fn size(&self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63  |     pub fn depth(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67  |     pub fn train_semantics(&self) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73  |     pub fn test_semantics(&self) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79  |     pub fn semantics(&self) -> (Vec<f32>, Vec<f32>) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn new() -> Individual {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn full(max_depth: usize, data_ref: &Data) -> Individual {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn inner_full(&mut self, current_depth: usize, max_depth: usize, data_dims: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn grow(max_depth: usize, data_ref: &Data) -> Individual {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn inner_grow(&mut self, current_depth: usize, max_depth: usize, data_dims: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     fn get(&mut self, idx: usize) -> Node {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn prepend_node(&mut self, node: Node) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn compute_depth(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     fn inner_compute_depth(&mut self, idx: &mut usize, current_depth: &usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     fn output(&mut self, mut idx: usize, df: &Vec<Vec<f32>>) -> Vec<f32> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn compute_semantics(&mut self, data: &Data) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn evaluate(&mut self, data: &Data) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn count_subtree_nodes(&self, starting_index: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn outer_left_copy(&self, excluding_node_at: usize) -> Vec<Node> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn outer_right_copy(&self, including_node_at: usize) -> Vec<Node> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn copy_subtree(&self, from_node: usize, subtree_nodes: usize) -> Vec<Node> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn plug_in_core(&mut self, nodes: Vec<Node>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `crossover` is never used
[INFO] [stdout]    --> src/core/individual.rs:305:16
[INFO] [stdout]     |
[INFO] [stdout] 305 |         pub fn crossover(p1: &Individual, p2: &Individual, data: &Data) -> Individual {
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mutation` is never used
[INFO] [stdout]    --> src/core/individual.rs:331:16
[INFO] [stdout]     |
[INFO] [stdout] 331 |         pub fn mutation(p1: &Individual, data: &Data) -> Individual {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `crossover` is never used
[INFO] [stdout]    --> src/core/individual.rs:369:16
[INFO] [stdout]     |
[INFO] [stdout] 369 |         pub fn crossover(p1: &Individual, p2: &Individual, data: &Data) -> Individual {
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gs_crossover_semantics` is never used
[INFO] [stdout]    --> src/core/individual.rs:394:12
[INFO] [stdout]     |
[INFO] [stdout] 394 |         fn gs_crossover_semantics(p1_semantics: Vec<f32>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_xo_offspring_size` is never used
[INFO] [stdout]    --> src/core/individual.rs:405:12
[INFO] [stdout]     |
[INFO] [stdout] 405 |         fn calc_xo_offspring_size(p1: &Individual, p2: &Individual, r1: &Individual) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_xo_offspring_depth` is never used
[INFO] [stdout]    --> src/core/individual.rs:409:12
[INFO] [stdout]     |
[INFO] [stdout] 409 |         fn calc_xo_offspring_depth(p1: &Individual, p2: &Individual, r1: &Individual) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mutation` is never used
[INFO] [stdout]    --> src/core/individual.rs:415:16
[INFO] [stdout]     |
[INFO] [stdout] 415 |         pub fn mutation(p1: &Individual,
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gs_mutation_semantics` is never used
[INFO] [stdout]    --> src/core/individual.rs:450:12
[INFO] [stdout]     |
[INFO] [stdout] 450 |         fn gs_mutation_semantics(p1_sems: Vec<f32>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_mut_offspring_size` is never used
[INFO] [stdout]    --> src/core/individual.rs:461:12
[INFO] [stdout]     |
[INFO] [stdout] 461 |         fn calc_mut_offspring_size(p1: &Individual, r1: &Individual, r2: &Individual) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_mut_offspring_depth` is never used
[INFO] [stdout]    --> src/core/individual.rs:465:12
[INFO] [stdout]     |
[INFO] [stdout] 465 |         fn calc_mut_offspring_depth(p1: &Individual, r1: &Individual, r2: &Individual) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Population` is never constructed
[INFO] [stdout]  --> src/core/population.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Population {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/population.rs:14:12
[INFO] [stdout]     |
[INFO] [stdout] 12  | impl Population {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 13  |     /// Returns size of the population.
[INFO] [stdout] 14  |     pub fn size(&self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19  |     pub fn new() -> Population {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24  |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29  |     pub fn add_individual(&mut self, new_guy: Individual) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36  |     pub fn add_individuals(&mut self, new_guys: Vec<Individual>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44  |     pub fn core_mut(&mut self) -> &mut Vec<Individual> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49  |     pub fn core(&self) -> &Vec<Individual> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54  |     pub fn new_rhh(pop_size: usize, max_init_depth: usize, data: &Data) -> Population {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91  |     pub fn sort_by_te(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn get_first(&self) -> &Individual {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn clone_k_best(&self, k: usize) -> Vec<Individual> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn keep_k_best(&mut self, k: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn tournament_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn fitness_proportionate_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn rank_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn pareto_rank_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Selection` is never used
[INFO] [stdout]   --> src/core/gp.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | enum Selection {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Variation` is never used
[INFO] [stdout]   --> src/core/gp.rs:22:6
[INFO] [stdout]    |
[INFO] [stdout] 22 | enum Variation {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GP` is never constructed
[INFO] [stdout]   --> src/core/gp.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct GP {
[INFO] [stdout]    |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/gp.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout] 49  | impl GP {
[INFO] [stdout]     | ------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 53  |     pub fn new_gp(dataset: Data) -> GP {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70  |     pub fn new_gsgp(dataset: Data) -> GP {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85  |     pub fn set_pop(mut self, pop: Population) -> GP {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97  |     pub fn set_pop_size(mut self, size: usize) -> GP {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn set_xo_rate(mut self, xo_rate: f32) -> GP {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn set_pool_size(mut self, ps: usize) -> GP {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn set_selection_method(mut self, sm: Selection) -> GP {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn pop(&self) -> &Population {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn pop_mut(&mut self) -> &mut Population {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn init_new_pop(&mut self) -> () {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn print_state(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn select(&self) -> &Individual {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     fn crossover(&self, p1: &Individual, p2: &Individual, data: &Data) -> Individual {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     fn mutation(&self, p1: &Individual, data: &Data) -> Individual {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn evolve(&mut self, gens: usize) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn clean(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mgp` is never constructed
[INFO] [stdout]  --> src/core/multi_gp.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Mgp {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_subpop`, `init`, and `evolve_in_parallel` are never used
[INFO] [stdout]   --> src/core/multi_gp.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Mgp {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 11 |     /// Returns a blank `Mgp` to be configured
[INFO] [stdout] 12 |     pub fn new() -> Mgp {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn add_subpop(mut self, s: GP) -> Mgp {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn init(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn evolve_in_parallel(&mut self, turns: u8, gens_per_turn: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/core/data.rs:60:30
[INFO] [stdout]    |
[INFO] [stdout] 60 |             Err(e) => panic!(e),
[INFO] [stdout]    |                              ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 60 |             Err(e) => panic!("{}", e),
[INFO] [stdout]    |                              +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]    |
[INFO] [stdout] 60 -             Err(e) => panic!(e),
[INFO] [stdout] 60 +             Err(e) => std::panic::panic_any(e),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool_size`
[INFO] [stdout]    --> src/core/population.rs:138:48
[INFO] [stdout]     |
[INFO] [stdout] 138 |     pub fn fitness_proportionate_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |                                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pool_size`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool_size`
[INFO] [stdout]    --> src/core/population.rs:148:31
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn rank_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pool_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool_size`
[INFO] [stdout]    --> src/core/population.rs:152:38
[INFO] [stdout]     |
[INFO] [stdout] 152 |     pub fn pareto_rank_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pool_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Selection` is more private than the item `GP::set_selection_method`
[INFO] [stdout]    --> src/core/gp.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 116 |     pub fn set_selection_method(mut self, sm: Selection) -> GP {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `GP::set_selection_method` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Selection` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/core/gp.rs:13:1
[INFO] [stdout]     |
[INFO] [stdout] 13  | enum Selection {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_empty`, `core_mut`, `core`, and `pareto_rank_select` are never used
[INFO] [stdout]    --> src/core/population.rs:24:12
[INFO] [stdout]     |
[INFO] [stdout] 12  | impl Population {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24  |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44  |     pub fn core_mut(&mut self) -> &mut Vec<Individual> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49  |     pub fn core(&self) -> &Vec<Individual> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn pareto_rank_select(&self, pool_size: usize) -> &Individual {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `FitnessProportionate` and `Rank` are never constructed
[INFO] [stdout]   --> src/core/gp.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | enum Selection {
[INFO] [stdout]    |      --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 16 |     FitnessProportionate, // TODO
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     Rank, // TODO
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `GeometricSemantic` is never constructed
[INFO] [stdout]   --> src/core/gp.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | enum Variation {
[INFO] [stdout]    |      --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 30 |     GeometricSemantic(f32, bool),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_gsgp`, `set_pop`, and `set_selection_method` are never used
[INFO] [stdout]    --> src/core/gp.rs:70:12
[INFO] [stdout]     |
[INFO] [stdout] 49  | impl GP {
[INFO] [stdout]     | ------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 70  |     pub fn new_gsgp(dataset: Data) -> GP {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85  |     pub fn set_pop(mut self, pop: Population) -> GP {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn set_selection_method(mut self, sm: Selection) -> GP {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/core/data.rs:60:30
[INFO] [stdout]    |
[INFO] [stdout] 60 |             Err(e) => panic!(e),
[INFO] [stdout]    |                              ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 60 |             Err(e) => panic!("{}", e),
[INFO] [stdout]    |                              +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]    |
[INFO] [stdout] 60 -             Err(e) => panic!(e),
[INFO] [stdout] 60 +             Err(e) => std::panic::panic_any(e),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.35s
[INFO] running `Command { std: "docker" "inspect" "4ec58dd676c6beb99c2d4705f7158f52b3ddd9479a3f8a2e99987d01330af2d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4ec58dd676c6beb99c2d4705f7158f52b3ddd9479a3f8a2e99987d01330af2d5", kill_on_drop: false }`
[INFO] [stdout] 4ec58dd676c6beb99c2d4705f7158f52b3ddd9479a3f8a2e99987d01330af2d5
